1. Field of the Invention
This invention relates to a programmable logic circuit formed as a semiconductor integrated circuit, and more particularly to a programmable logic circuit which is extremely simple in construction and can be easily extended.
2. Description of the Related Art
When a logic circuit with several gates to several tens of gates is required, a general-purpose small-scale integrated circuit (SSI) has been generally used. A series of transistor-transistor logic (TTL) constructions and a series of complementary metal oxide semiconductor (CMOS) constructions are known as the SSI. In the above SSIs, a plurality of logic gates are sealed in one IC package and various types of gates are provided so that circuit designers may selectively purchase general-purpose SSIs as required to construct a desired logic circuit. ICs having 14 pins and four 2-input NAND gates and ICs having 14 pins and four 2-input NOR gates are widely known as such SSIs.
Such SSIs are commercially available in various areas and easy to be obtained, but they may frequently include useless portions for users. For example, when a user wants to obtain one 2-input NOR gate and one 2-input NAND gate, he will be most satisfied if he can find an IC containing one 2-input NOR gate and one 2-input NAND gate. However, there is no such SSI on the market and it is necessary to use an IC having four 2-input NOR gates as the 2-input NOR gate and an IC having four 2-input NAND gates as the 2-input NAND gate and as a result two ICs are necessary. Further, in this case, since each of the ICs has four gates as described before, three gates will not be used and become useless. When mounting the ICs on a substrate, it is necessary to form through holes for the logic gates which are not used and it is necessary to provide a space for the two ICs.
In this example, the circuit scale is very small. However, in a case where a digital circuit including several hundreds of gates is formed, the useless area will become much larger.
It is clear that the above problem can be solved by adding an IC having a 2-input NAND gate and a 2-input NOR gate contained therein to the SSI series and putting the IC on the market. However, the user's requirement is limitless. For example, even a 2-input logic gate includes various types of logic gates such as a NAND gate, NOR gate, AND gate, OR gate, exclusive OR gate, and exclusive NOR gate. Therefore, if an IC containing a plurality of such 2-input logic gates is formed, the number of types of the ICs may become extremely large, and neither the maker nor the user may control the ICs.
Further, it is necessary for the user to always stock all types of SSIs. Since the type of the logic gates which will be used is not previously known, it becomes necessary to stock a large number of general-purpose SSIs of more than 100 types. The control for the SSIs is complicated and it is necessary to provide a large space for keeping the SSIs.
Recently, in order to solve the above problem relating to the SSIs, the ICs called programmable logic devices (PLD) in which logic gates can be programmed have been developed. A PLD is an IC sealed a series of logic circuits therein which is formed by using the technique disclosed in U.S. Pat. No. 4,124,899 by Birkner et al. entitled "PROGRAMMABLE ARRAY LOGIC CIRCUIT", for example. In the above U.S. Patent, a plurality of vertical wirings are arranged on a plurality of lateral wirings which are connected to the input terminals of respective logic gates, memory cells are disposed at cross points arranged in a matrix form, and the lateral wirings are selectively connected to the vertical wirings via the selected cross points by selectively writing "0" or "1" into the memory cells. In this way, a desired logic circuit can be attained by making or breaking the connection between the lateral wirings and the vertical wirings.
The PLD is advantageous in that various logic circuits can be programmed. However, the programming process is complicated. And, the number of memory cells to be programmed is large, so it is necessary to program all the memory cells. Therefore, it is necessary to use a large-scale programming implement such as a personal computer. Further, it is necessary for the user to develop a complicated software for programming the PLD with a long period of time or purchase a software together with an expensive programming implement.